<script>
	

	import {setTokenStorage} from './utils/token';
	const {getTokenStorage} = require('./debug/GenerateTestUserSig.js');	
	import WXBizDataCrypt from './libs/WXBizDataCrypt.js'
	var onfig = uni.getStorageSync('config')
	const config = {
	  userID: onfig.userID, //User ID
	  SDKAppID: 0, // Your SDKAppID
	  secretKey: "", // Your secretKey
	};
	const map={
	  	latitude: '',
	  	longitude: ''
		}
	var aa 

	const userSig = onfig.userSig;
	// #ifdef  APP-PLUS || MP-WEIXIN
	import TIM from 'tim-wx-sdk';
	import COS from 'cos-wx-sdk-v5';
	// #endif

	// #ifdef H5
	import TIM from 'tim-js-sdk';
	import TIMUploadPlugin from 'tim-upload-plugin'
	logger.error(' TUIKit 暂不支持 H5 / web ，请使用者自己完成兼容哦，页面刷新可能会导致报错，需要重新登录 ');
	// #endif

	// #ifdef APP-PLUS
	import Aegis from 'aegis-weex-sdk';
	// #endif

	// #ifdef MP-WEIXIN
	import Aegis from 'aegis-mp-sdk';
	import helper from './common/helper.js';
	import api from './common/api.js';
	// #endif

	// #ifdef H5
	import Aegis from 'aegis-web-sdk';
	// #endif

	import logger from './utils/logger'; // app.js
	import {
		genTestUserSig
	} from './debug/GenerateTestUserSig.js';

	const aegis = new Aegis({
		id: 'iHWefAYqKznuxWjLnr', // 项目key
		reportApiSpeed: true, // 接口测速
	});

	uni.$aegis = aegis
	// 首先需要通过 uni.requireNativePlugin("ModuleName") 获取 module
	// #ifdef APP-PLUS
	const TUICallKit = uni.requireNativePlugin('TencentCloud-TUICallKit');
	logger.log(`| app |  TencentCloud-TUICallKit | TUICalling: ${TUICallKit}`);
	if (typeof(TUICallKit) == 'undefined') {
		logger.error(
			'如果需要音视频功能，请集成原生插件，使用真机运行并且自定义基座调试哦～ 插件地址：https://ext.dcloud.net.cn/plugin?id=9035 , 调试地址：https://nativesupport.dcloud.net.cn/NativePlugin/use/use'
		);
	}
	// #endif
	export default {

		onLaunch: function() {
			// var config = uni.getStorageSync('config')
			// console.log("Config", config)
			// uni.$TUIKit.login({
			// 	userID: config.userID,
			// 	userSig:userSig
			// }).then((res) => {
			// 	// sdk 初始化，当 sdk 处于ready 状态，才可以使用API，文档
			// 	uni.showLoading({
			// 		title: "初始化...",
			// 	});
			// });
			this.updateApp()
			const SDKAppID = genTestUserSig('').sdkAppID;
			uni.$aegis.reportEvent({
				name: 'onLaunch',
				ext1: 'onLaunch-success',
				ext2: 'uniTuikitExternal',
				ext3: `${SDKAppID}`,
			})
			// uni.setStorageSync(`TIM_${SDKAppID}_isTUIKit`, true);
			// 重点注意： 为了 uni-app 更好地接入使用 tim，快速定位和解决问题，请勿修改 uni.$TUIKit 命名。
			// 如果您已经接入 tim ，请将 uni.tim 修改为 uni.$TUIKit。
			uni.$TUIKit = TIM.create({
				SDKAppID: SDKAppID
			});
			// #ifndef H5
			uni.$TUIKit.registerPlugin({
				'cos-wx-sdk': COS
			});
			// #endif

			// #ifdef H5
			uni.$TUIKit.registerPlugin({
				'tim-upload-plugin': TIMUploadPlugin
			})
			// #endif
			// 将原生插件挂载在 uni 上
			// #ifdef APP-PLUS
			uni.$TUICallKit = TUICallKit;
			// #endif
			// 如果您已创建了 tim，请将 tim 实例挂载在 wx 上，且不可以修改 wx.$TIM（修改变量可能导致 TUICallKit 组件无法正常使用）, 完成 TUICallKit 初始化，
			// 如果您没有创建，可以不传
			// #ifdef MP-WEIXIN
			wx.$TIM = uni.$TUIKit;
			// #endif
			var config = uni.getStorageSync('config')
			console.log("Config", config)
			uni.$TUIKit.login({
				userID: config.userID,
				userSig:userSig
			}).then((res) => {
				// sdk 初始化，当 sdk 处于ready 状态，才可以使用API，文档
				// uni.showLoading({
				// 	title: "初始化...",
				// });
			});
			uni.$TUIKitTIM = TIM;
			uni.$TUIKitEvent = TIM.EVENT;
			uni.$TUIKitVersion = TIM.VERSION;
			uni.$TUIKitTypes = TIM.TYPES; // 监听系统级事件
			uni.$resetLoginData = this.resetLoginData();
			console.log("894544", uni.$TUIKit.login)
			uni.$TUIKit.on(uni.$TUIKitEvent.SDK_READY, this.onSDKReady);
			uni.$TUIKit.on(uni.$TUIKitEvent.SDK_NOT_READY, this.onSdkNotReady);
			uni.$TUIKit.on(uni.$TUIKitEvent.KICKED_OUT, this.onKickedOut);
			uni.$TUIKit.on(uni.$TUIKitEvent.ERROR, this.onTIMError);
			uni.$TUIKit.on(uni.$TUIKitEvent.NET_STATE_CHANGE, this.onNetStateChange);
			uni.$TUIKit.on(uni.$TUIKitEvent.SDK_RELOAD, this.onSDKReload);
			// console.log("开始监听"+this.onSDKReady)
		},
		

		globalData: {
			host_image: "https://www.yandaijia.cn/uploads/",
			// userInfo: userID userSig token phone
			userInfo: null,
			loginStatus: false,
			// 个人信息
			userProfile: null,
			isTUIKit: true,
			headerHeight: 0,
			statusBarHeight: 0,
			SDKAppID: genTestUserSig('').sdkAppID
		},


		methods: {
			LoginTim() {
				// console.log("879654789")
				// console.log("3333333",uni.$TUIKit)
				// var config = uni.getStorageSync('config')
				// console.log("Config", config)
				// uni.$TUIKit.login({
				// 	userID: config.userID,
				// 	userSig:userSig
				// }).then((res) => {
				// 	// sdk 初始化，当 sdk 处于ready 状态，才可以使用API，文档
				// 	uni.showLoading({
				// 		title: "初始化...",
				// 	});
				// });



			},

			async getOrder(){
				console.log("getOrderList")
				let res = await api.getOrderList({
				status: 1,
				type:"driver",
				page: 1,
				});
				console.log('res.data',res.data);
				if(res.data.data[0].status == '2'){
					console.log("走");
						uni.getLocation({
							type: 'gcj02',
							success: async res1 => {
								console.log("res",res1);
								// 当前地址
								let data1 = {
									order_id:res.data.data[0].id,
									latitude: res1.latitude,
									longitude: res1.longitude,
									
								}
								let data = await api.getfootprint(data1);
							}
						});
				}
			},
			getLocation(driver_id) {
				const _that = this;
				uni.startLocationUpdateBackground({
					success: (res) => {
						console.log('定位成功', res);
						uni.onLocationChange(function(res) {
							console.log('经纬度信息', res.longitude + '===' + res.latitude);
							let data = {
								longitude: res.longitude,
								latitude: res.latitude,
								user_id: driver_id
							};
							api.getDriverLocation(data);
						});
					},
					fail: (err) => {
						console.log('定位失败', err);
						uni.getSetting({
							success(res) {
								if (res.authSetting['scope.userLoactionBackground']) {
									uni.showToast({
										title:'授权成功'
									})
								} else {
									uni.showModal({
										content: '需要获取前后台运行定位权限',
										success: (res) => {
											if (res.confirm) {
												uni.openSetting({
													success: (res) => {
														if (res.authSetting['scope.userLocationBackground'] == true) {
															_that.getLocation(driver_id);
														} else {
															uni.showToast({
																title: '不能坚持在后台运行',
																icon: "error"
															})
														}
													},
													fail: (err) => {
														uni.showToast({
															title: '不能坚持在后台运行',
															icon: "error"
														})
													}
												})
											} else {
												uni.showToast({
													title: '不能坚持在后台运行',
													icon: "error"
												})
											}
										}
									})
								}
							}
						})
					}
				})
			},
			updateApp() {
				const updateManager = uni.getUpdateManager()
				updateManager.onCheckForUpdate(function(res) {
					// 请求完新版本信息的回调
					if (res.hasUpdate) {
						uni.showLoading({
							title: '更新下载中...',
						})
					}
				})
				updateManager.onUpdateReady(function() {
					uni.hideLoading();
					uni.showModal({
						title: '更新提示',
						content: '新版本已经准备好，是否重启应用？',
						success: function(res) {
							if (res.confirm) {
								// 新的版本已经下载好，调用 applyUpdate 应用新版本并重启
								updateManager.applyUpdate()
							}
						}
					})

				})
				updateManager.onUpdateFailed(function() {
					// 新的版本下载失败
					uni.hideLoading();
					uni.showToast({
						title: '下载失败...',
						icon: "none"
					});
				})
			},
			async getUserInfo() {
				if (helper.hasLogin()) {
					let reg = await api.getUserInfo();
					if (reg.data.dirver === 1) {
						this.getLocation(reg.data.id);
						//   uni.startLocationUpdateBackground({
						//     success: res => console.log('开启小程序接收位置消息成功'),
						//     fail: err => console.error('开启小程序接收位置消息失败：', err),
						//     complete: msg => console.log('调用开启小程序接收位置消息 API 完成')
						//   })
						//  uni.onLocationChange(function (res) {
						//   	console.log('纬度：' + res.latitude);
						//   	console.log('经度：' + res.longitude); 
						//  let data = {
						// 	longitude:res.longitude,
						// 	latitude:res.latitude,
						// 	user_id:reg.data.id
						// };
						// this.timer = setInterval(() => {
						// 		api.getDriverLocation(data)
						// 	}, 1000*10); 
						// });
					}
				}
			},
			// TODO:
			resetLoginData() {
				this.globalData.expiresIn = '';
				this.globalData.sessionID = '';
				this.globalData.userInfo = {
					userID: '',
					userSig: '',
					token: '',
					phone: ''
				};
				this.globalData.userProfile = null;
				logger.log(`| app |  resetLoginData | globalData: ${this.globalData}`);
			},
			onTIMError() {},
			onSDKReady({
				name
			}) {
				console.log("3333333333333", name, uni.$TUIKitEvent.SDK_READY)
				const isSDKReady = name === uni.$TUIKitEvent.SDK_READY ? true : false
				console.log("正在准备")
				uni.$emit('isSDKReady', {
					isSDKReady: true
				});
			},
			onNetStateChange() {},
			onSDKReload() {

			},
			onSdkNotReady() {},
			onKickedOut() {
				uni.showToast({
					title: '您被踢下线',
					icon: 'error'
				});
				uni.navigateTo({
					url: './pages/TUI-Login/login'
				});
			}
		},
		
		onShow: function() {
			setInterval(()=>{
				this.getOrder()
			},60*1000)
			this.getUserInfo();
			console.log("");
			uni.getSystemInfo({
				success: (result) => {
					// 获取手机系统的状态栏高度（不同手机的状态栏高度不同）  （ 不要使用uni-app官方文档的var(--status-bar-height) 官方这个是固定的20px  不对的 ）
					// console.log('当前手机的状态栏高度',result.statusBarHeight)
					let statusBarHeight = result.statusBarHeight + 'px'

					// 获取右侧胶囊的信息 单位px
					const menuButtonInfo = uni.getMenuButtonBoundingClientRect()
					//bottom: 胶囊底部距离屏幕顶部的距离
					//height: 胶囊高度
					//left:   胶囊左侧距离屏幕左侧的距离
					//right:  胶囊右侧距离屏幕左侧的距离
					//top:    胶囊顶部距离屏幕顶部的距离
					//width:  胶囊宽度
					// console.log(menuButtonInfo.width, menuButtonInfo.height, menuButtonInfo.top)
					// console.log('计算胶囊右侧距离屏幕右边距离', result.screenWidth - menuButtonInfo.right)
					let menuWidth = menuButtonInfo.width + 'px'
					let menuHeight = menuButtonInfo.height + 'px'
					let menuBorderRadius = menuButtonInfo.height / 2 + 'px'
					let menuRight = result.screenWidth - menuButtonInfo.right + 'px'
					let menuTop = menuButtonInfo.top + 'px'
					let contentTop = result.statusBarHeight + 44 + 'px'

					let menuInfo = {
						statusBarHeight: statusBarHeight, //状态栏高度----用来给自定义导航条页面的顶部导航条设计padding-top使用：目的留出系统的状态栏区域
						menuWidth: menuWidth, //右侧的胶囊宽度--用来给自定义导航条页面的左侧胶囊设置使用
						menuHeight: menuHeight, //右侧的胶囊高度--用来给自定义导航条页面的左侧胶囊设置使用
						menuBorderRadius: menuBorderRadius, //一半的圆角--用来给自定义导航条页面的左侧胶囊设置使用
						menuRight: menuRight, //右侧的胶囊距离右侧屏幕距离--用来给自定义导航条页面的左侧胶囊设置使用
						menuTop: menuTop, //右侧的胶囊顶部距离屏幕顶部的距离--用来给自定义导航条页面的左侧胶囊设置使用
						contentTop: contentTop, //内容区距离页面最上方的高度--用来给自定义导航条页面的内容区定位距离使用
					}
					uni.setStorageSync('menuInfo', menuInfo)
				},
				fail: (error) => {
					console.log(error)
				}
			})
		},

		onHide: function() {
			console.log('App Hide')
		},
		onLoad() {

		},
		beforeDestroy(){
			clearInterval(aa)
		}
		// created() {
		//  this.getUserInfo()
		// }
	}
</script>

<style>
	page {
		height: auto;
	}

	/*每个页面公共css */
	@font-face {
		font-family: 'iconfont';
		/* project id 1488403 */
		font-family: 'iconfont';
		/* project id 1488403 */
		src: url('//at.alicdn.com/t/font_1488403_6jvjdwpn319.eot');
		src: url('//at.alicdn.com/t/font_1488403_6jvjdwpn319.eot?#iefix') format('embedded-opentype'),
			url('//at.alicdn.com/t/font_1488403_6jvjdwpn319.woff2') format('woff2'),
			url('//at.alicdn.com/t/font_1488403_6jvjdwpn319.woff') format('woff'),
			url('//at.alicdn.com/t/font_1488403_6jvjdwpn319.ttf') format('truetype'),
			url('//at.alicdn.com/t/font_1488403_6jvjdwpn319.svg#iconfont') format('svg');
	}

	uni-button:after {
		border: none;
	}

	.green {
		color: #32c45e;
	}

	.yellow {
		color: #f8d448;
	}

	.blue {
		color: #227aff;
	}

	.orange {
		color: #ed965f;
	}

	.gray {
		color: #979797;
	}

	.input-placeholder {
		font-size: 26upx;
	}

	input {
		font-size: 26upx;
	}

	.icon {
		font-size: 32upx;
		font-family: iconfont;
	}
</style>